// 权限管理工具

// 管理员账号列表
export const ADMIN_EMAILS = ['1463361202@qq.com']

// 普通用户账号列表（可选，用于明确限制）
export const NORMAL_USER_EMAILS = ['3183936985@qq.com']

// 检查用户是否为管理员
export const isAdmin = (email: string): boolean => {
  return ADMIN_EMAILS.includes(email)
}

// 检查用户是否为普通用户
export const isNormalUser = (email: string): boolean => {
  return NORMAL_USER_EMAILS.includes(email)
}

// 获取用户角色
export const getUserRole = (email: string): 'admin' | 'normal' | 'unknown' => {
  if (isAdmin(email)) {
    return 'admin'
  } else if (isNormalUser(email)) {
    return 'normal'
  }
  return 'unknown'
}

// 检查用户是否有权限执行特定操作
export const hasPermission = (email: string, operation: string): boolean => {
  const role = getUserRole(email)
  
  // 管理员拥有所有权限
  if (role === 'admin') {
    return true
  }
  
  // 普通用户权限检查 - 只允许查看基本页面
  if (role === 'normal') {
    const normalUserPermissions = [
      'view_basic_pages',      // 查看基础页面（底部tabbar页面）
      'view_login_page',       // 查看登录页面
      'view_register_page',    // 查看注册页面
      'view_doctor_list',      // 查看医生列表
      'view_doctor_detail',    // 查看医生详情
      'view_disease_detail',   // 查看疾病详情
      'view_drug_detail',      // 查看药品详情
      'view_search',           // 查看搜索页面
      'view_information',      // 查看健康资讯
      // 禁止所有交互操作
      // 'comment',               // 评论功能
      // 'like',                  // 点赞/收藏功能
      // 'follow',                // 关注功能
      // 'publish',               // 发布功能
      // 'consultation',          // 在线咨询功能
    ]
    
    return normalUserPermissions.includes(operation)
  }
  
  return false
}

// 需要权限的操作列表
export const PERMISSION_OPERATIONS = {
  // 评论相关
  COMMENT: 'comment',
  LIKE: 'like',
  FOLLOW: 'follow',
  PUBLISH: 'publish',
  
  // 查看页面
  VIEW_BASIC_PAGES: 'view_basic_pages',
  VIEW_LOGIN_PAGE: 'view_login_page',
  VIEW_REGISTER_PAGE: 'view_register_page',
  VIEW_DOCTOR_LIST: 'view_doctor_list',
  VIEW_DOCTOR_DETAIL: 'view_doctor_detail',
  VIEW_DISEASE_DETAIL: 'view_disease_detail',
  VIEW_DOCTOR_DRUG_DETAIL: 'view_drug_detail',
  VIEW_SEARCH: 'view_search',
  VIEW_INFORMATION: 'view_information',
  
  // 其他操作
  CONSULTATION: 'consultation',
  GIFT: 'gift',
}

// 权限不足提示信息
export const getPermissionDeniedMessage = (operation: string): string => {
  const operationNames: Record<string, string> = {
    [PERMISSION_OPERATIONS.COMMENT]: '评论',
    [PERMISSION_OPERATIONS.LIKE]: '点赞',
    [PERMISSION_OPERATIONS.FOLLOW]: '关注',
    [PERMISSION_OPERATIONS.PUBLISH]: '发布',
    [PERMISSION_OPERATIONS.CONSULTATION]: '在线咨询',
    [PERMISSION_OPERATIONS.GIFT]: '送礼物',
  }
  
  const operationName = operationNames[operation] || '此操作'
  return `暂无权限，无法${operationName}`
}
